// const stadents = [
//   { id: 1, name: '小毅', match: 90 },
//   { id: 2, name: '忘喧', match: 91 },
//   { id: 3, name: '阿木', match: 92 },
// ]

// const one1 = { id: 3, name: '阿木', match: 92 }
// const one2 = { id: 3, name: '阿木', match: 92 }
// const two = { name: '阿木', id: 3, match: 92 }

// console.log(11111, JSON.stringify(one1) === JSON.stringify(one2));
// console.log(11111, JSON.stringify(one1) === JSON.stringify(two));

// function Person(name, age) {
//   this.name = name
//   this.age = age
// }
// function Son(weith) {
//   this.weith = weith;
//   this.sonSay = () => {
//     console.log('这是子类');
//   }
// }
// Person.prototype.say = function () {
//   console.log('hello');
// }
// Son.prototype = new Person('小毅', 12)
// Son.prototype.constructor = Son
// // const person = new Person('小毅', 12)
// const son = new Son('6kg')



// console.log('Person', Person);
// console.log('Person', Person.constructor);
// console.log('Person', Person.constructor === Function);
// console.log('Person', Person.prototype.constructor);
// console.log('Person-protoptype', Person.prototype);
// console.log('person', person);

// console.log('Son', Son);
// console.log('son', son);
// son.say()


// static 静态方法可以被子类继承
// class Parent {
//   static getLsit() {
//     console.log('Parent-getLsit');
//   }

// }
// class Son extends Parent {
//   static getDetail() {
//     console.log('Son-getDetail');
//   }
// }

// Son.getDetail()
// Son.getLsit()

// function GetDetail() {}

// console.log(GetDetail); // GetDetail
// console.log(GetDetail === GetDetail.prototype.constructor);  // true
// console.log(typeof GetDetail.prototype); // object
// console.log(typeof GetDetail.constructor); // function
// console.log(GetDetail.constructor === Function); // true
// console.log(typeof GetDetail.prototype.constructor); // function

// Function.apply
// Function.arguments
// Function.bind
// Function.call
// Function.caller
// Function.length
// Function.name
// Function.prototype
// Function.toString
// console.log({} instanceof Object);
// console.log(Function instanceof Object);


function Parent(name) {
  this.name = name
  this.say = function () {
    console.log('Parent-say');
  }
}
console.log(Parent);
console.log(Parent.prototype);


// Parent.prototype.say = function () {
//   console.log('Parent-say');
// }

// function Son(age, name) {
//   Parent.call(this, name)
//   this.age = age
// }


// Son.prototype = Parent.prototype
// Son.prototype.constructor = Son

// Son.prototype.sonSay = function () {
//   console.log('sonsay');
// }

// const son = new Son(12, '小毅')

// console.log(son);
// son.sonSay()
// son.say()

